﻿using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Marmat.Forms.Skin
{
    /// <summary>
    /// 为 System.Windows.Forms.TreeView.MeasureNode 事件提供数据。
    /// </summary>
    public class MeasureTreeNodeEventArgs
    {
        /// <summary>
        /// 初始化 System.Windows.Forms.MeasureTreeNodeEventArgs 类的新实例。
        /// </summary>
        /// <param name="node">要绘制的 System.Windows.Forms.TreeNode。</param>
        /// <param name="size">System.Drawing.Rectangle 在其中进行绘制。</param>
        /// <param name="state">按位组合 System.Windows.Forms.TreeNodeStates 值，该值指示当前状态的 System.Windows.Forms.TreeNode 绘制。</param>
        public MeasureTreeNodeEventArgs(TreeNode node, Size size, TreeNodeStates state)
        {
            this.Node = node;
            this.Size = size;
            this.State = state;
        }

        /// <summary>
        /// 获取 System.Windows.Forms.TreeNode 绘制。
        /// </summary>
        /// <remarks>要绘制的 System.Windows.Forms.TreeNode。</remarks>
        public TreeNode Node { get; }

        /// <summary>
        /// 获取大小和位置 System.Windows.Forms.TreeNode 绘制。
        /// </summary>
        /// <remarks> 一个 System.Drawing.Rectangle 表示的边界 System.Windows.Forms.TreeNode 绘制。</remarks>
        public Size Size { get; set; }

        /// <summary>
        /// 获取的当前状态 System.Windows.Forms.TreeNode 绘制。
        /// </summary>
        /// <remarks>按位组合 System.Windows.Forms.TreeNodeStates 值，该值指示当前状态的 System.Windows.Forms.TreeNode。</remarks>
        public TreeNodeStates State { get; }
    }
}
